草庐IT

scrapy -- CrawlSpider类

全部标签

python - 我应该创建管道以使用 scrapy 保存文件吗?

我需要保存文件(.pdf),但不确定如何保存。我需要保存.pdf文件并将它们存储在目录中,就像它们存储在我正在抓取它们的网站上一样。据我所知,我需要制作一个管道,但据我了解,管道保存的“项目”和“项目”只是基本数据,如字符串/数字。保存文件是正确使用管道,还是我应该将文件保存在蜘蛛中? 最佳答案 是和否[1]。如果您获取pdf,它将存储在内存中,但如果pdf不够大,无法填满您的可用内存,那么也可以。您可以将pdf保存在蜘蛛回调中:defparse_listing(self,response):#...extractpdfurlsfo

python - scrapy.Item 中的数组字段

我想向scrapy.Item添加一个字段,使其成为一个数组:classMyItem(scrapy.Item):field1=scrapy.Field()field2=scrapy.Field()field3_array=???我该怎么做? 最佳答案 您只需创建一个字段field3_array=scrapy.Field()但是在解析抓取的项目时这样做items['field3_array']=[]items['field3_array'][0]='one'items['field3_array'][1]='two'这样就可以实现了。有

python - Flask和Scrapy如何整合?

我正在使用scrapy获取数据,我想使用flaskweb框架在网页中显示结果。但是我不知道如何在flask应用程序中调用蜘蛛。我尝试使用CrawlerProcess来调用我的蜘蛛,但我得到了这样的错误:ValueErrorValueError:signalonlyworksinmainthreadTraceback(mostrecentcalllast)File"/Library/Python/2.7/site-packages/flask/app.py",line1836,in__call__returnself.wsgi_app(environ,start_response)Fil

python - Scrapy 管道以正确的格式导出 csv 文件

我根据下面alexce的建议做了改进。我需要的是如下图。但是,每一行/行应该是一条评论:包含日期、评级、评论文本和链接。我需要让项目处理器处理每个页面的每个评论。目前TakeFirst()只接受页面的第一次审查。所以10页,我只有10行/行,如下图所示。爬虫代码如下:importscrapyfromamazon.itemsimportAmazonItemclassAmazonSpider(scrapy.Spider):name="amazon"allowed_domains=['amazon.co.uk']start_urls=['http://www.amazon.co.uk/pro

python - 如何让 Scrapy 在日志中根据下载请求显示用户代理?

我在学习Scrapy,一个网络爬虫框架。我知道我可以在Scrapy项目的settings.py文件中设置USER_AGENT。当我运行Scrapy时,我可以在INFO日志中看到USER_AGENT的值。此USER_AGENT在我要抓取的服务器的每个下载请求中设置。但我在thissolution的帮助下随机使用了多个USER_AGENT.我猜这个随机选择的USER_AGENT会起作用。我想确认一下。那么,我如何让ScrapyshowsUSER_AGENT每次下载请求,以便我可以在日志中看到USER_AGENT的值? 最佳答案 仅供引用

python - Yield Request调用在scrapy的递归方法中产生奇怪的结果

我正在尝试使用Python和Scrapy在一天内从所有国家/地区的所有机场取消所有出发和到达。这个著名网站(飞行雷达)使用的JSON数据库需要在一个机场出发或到达>100时逐页查询。我还根据查询的实际日期UTC计算时间戳。我尝试创建具有此层次结构的数据库:country1-airport1-departures-page1-page...-arrivals-page1-page...-airport2-departures-page1-page...-arrivals-page-page......我使用两种方法来按页面计算时间戳和url查询:defcompute_timestamp(

python - 如何在scrapy中获取队列中的请求数?

我正在使用scrapy来抓取一些网站。如何获取队列中的请求数?我查看了scrapy源代码,发现scrapy.core.scheduler.Scheduler可能会引出我的答案。请参阅:https://github.com/scrapy/scrapy/blob/0.24/scrapy/core/scheduler.py两个问题:如何访问我的蜘蛛类中的调度程序?调度器类中的self.dqs和self.mqs是什么意思? 最佳答案 这花了我一段时间才弄清楚,但这是我使用的:self.crawler.engine.slot.schedule

python - Scrapy:提取链接和文本

我是scrapy的新手,我正在尝试抓取宜家网站网页。包含给定位置列表的基本页面here.我的items.py文件如下:importscrapyclassIkeaItem(scrapy.Item):name=scrapy.Field()link=scrapy.Field()下面给出了蜘蛛:importscrapyfromikea.itemsimportIkeaItemclassIkeaSpider(scrapy.Spider):name='ikea'allowed_domains=['http://www.ikea.com/']start_urls=['http://www.ikea.c

python - 使用 Scrapy 从网站查找和下载 pdf 文件

我的任务是使用Scrapy从网站上提取pdf文件。我对Python并不陌生,但Scrapy对我来说是一个非常新的东西。我一直在试验控制台和一些基本的蜘蛛。我找到并修改了这段代码:importurlparseimportscrapyfromscrapy.httpimportRequestclasspwc_tax(scrapy.Spider):name="pwc_tax"allowed_domains=["www.pwc.com"]start_urls=["http://www.pwc.com/us/en/tax-services/publications/research-and-ins

web-scraping - Scrapy Shell 和 Scrapy Splash

我们一直在使用scrapy-splashmiddleware通过在docker容器内运行的Splashjavascript引擎传递抓取的HTML源。如果我们想在蜘蛛中使用Splash,我们配置几个requiredprojectsettings并产生一个Request指定特定的metaarguments:yieldRequest(url,self.parse_result,meta={'splash':{'args':{#setrenderingargumentshere'html':1,'png':1,#'url'isprefilledfromrequesturl},#optional